/**
 * @模块名：demo
 * @包名：com.example.pdf
 * @描述：Test.java
 * @版本：1.0
 * @创建人：likai
 * @创建时间：2020年10月22日上午10:23:21
 */
package com.example.pdf;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @模块名：demo @包名： com.example.pdf
 * @类名称：Test @类描述： @版本： 1.0
 * @创建人：likai
 * @创建时间：2020年10月22日上午10:23:21
 */
public class Test {

	/**
	 * @方法名：main
	 * @方法描述:
	 * @param args
	 * @修改描述: @版本：1.0
	 * @创建人：likai
	 * @创建时间：2020年10月22日 上午10:23:36
	 * @修改人：likai
	 * @修改时间：2020年10月22日 上午10:23:36
	 */
	public static void main(String[] args) {
		ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
		FileInputStream inputStream = null;
		FileOutputStream fileOutputStream = null;
		try {
			// 源文件pdf
			File file = new File(
					"D:\\workspace\\softbank\\scf\\softcode-contract-center\\src\\main\\resources\\template\\agreementTemplate.pdf");
			// 目标文件
			File destFile = new File("D:\\tmp\\agreementTemplate.pdf");
			inputStream = new FileInputStream(file);
			fileOutputStream = new FileOutputStream(destFile);
			byte[] bytes = new byte[inputStream.available()];
			inputStream.read(bytes);
			// 关键字
			String keyWord = "${agreementId}";
			// 替换后的内容
			String keyWordNew = "BCXY-0001";
			PdfUtil.pdfReplace(bytes, outputStream, keyWord, keyWordNew);
			// 得到替换后的文件字节
			byte[] byteArray = outputStream.toByteArray();
			// 输出
			fileOutputStream.write(byteArray);
			System.out.println("=================================");
		} catch (Exception e) {
			throw new RuntimeException(e);
		} finally {
			try {
				if (fileOutputStream != null)
					fileOutputStream.close();
				if (inputStream != null)
					inputStream.close();
				outputStream.close();
			} catch (IOException e) {
				throw new RuntimeException(e);
			}
		}
	}
}
